home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Full / Paragon Drive Backup 9 / DB90_SE_x32.msi / Data1.cab / _748DA16631159A583D99D8CC072C7898 < prev    next >
Text File  |  2008-06-28  |  4KB  |  135 lines

  1. /*
  2. * This script creates incremental backups
  3. * If quantity of incremental backups more than specified number
  4. * than this script deletes all incremental backups and creates
  5. * simple backup
  6. */
  7.  
  8. // Turn off all questions and confirmations
  9. confirm off
  10.  
  11. // Print some text
  12. print "Clever backup of partition"    
  13. print ""
  14.  
  15. /*
  16. * Set some variables:
  17. *    ndisk - number of disk with which we want to work
  18. *    npart - number of partition which we want backup
  19. *    nsavedisk - number of disk on which we will backup
  20. *    nsavepart - number of partition on which we will backup
  21. *    narchs - maximum number of incremental backups
  22. */
  23. set value ndisk = 0
  24. set value npart = 1
  25. set value nsavedisk = 0
  26. set value nsavepart = 2
  27. set value narchs = 10
  28.  
  29.  
  30. // Setting header for filename: "/hard<N1>/partition<N2>/"
  31. set string header = "/hard" + stringdec(value(nsavedisk)) + "/partition"
  32.     + stringdec(value(nsavepart)) + "/"
  33.  
  34. // Sets file counter to 0
  35. set value counter = 0
  36. if (not(fileexist(string(header) + "backup.pbf")))
  37. then
  38.     set value counter = value(narchs)
  39. endif
  40.  
  41. /*
  42. * Next some lines searches latest backup of partition
  43. * We simply check existing of files with
  44. * predefined filenames
  45. */
  46. jump:
  47. if (fileexist(string(header) + "backup" + stringdec(value(counter)) + ".pbf"))
  48. then
  49.     set value counter = value(counter) + 1
  50.     goto jump
  51. endif
  52.  
  53. // Ok, in counter we have number of files
  54. if (value(counter) < value(narchs))
  55. then
  56.     set value need_additional = 0
  57. endif
  58. else
  59.     set value need_additional = 1
  60. endelse
  61.  
  62. if (value(need_additional) != 1)
  63. then
  64.     // Incremental backup
  65.     print "Incremental backup of partition"    
  66.     print ""
  67.     // Select filename for image
  68.     img = string(header) + "backup" + stringdec(value(counter)) + ".pbf"    
  69.     base = string(header) + "backup.pbf"
  70.     unselect all
  71.     select disk value(ndisk)        // Select disk
  72.     select partition value(npart)    // Select partition
  73.     options
  74.     cmp = 1                // Compression = 1
  75.     label = "Incremental backup"    // Label
  76.     base_pwd = ""            // Password to base archive
  77.     autonames            // Create names automatically
  78.     store                // Backup
  79.     call something_do            // Check last operation
  80.  
  81.     apply all                // Apply all scheduled operations
  82.     call something_do            // Check last operation
  83.     goto out                // Exit
  84. endif
  85.  
  86.  
  87. // If we are here we need to do additional backup
  88. // But we need to delete all files before
  89.  
  90. set value counter = 0        // Sets file counter to 0
  91.  
  92. // Delete all files
  93. jump1:
  94. set string name_of_file = string(header) + "backup" + stringdec(value(counter)) + ".pbf"
  95. if (fileexist(string(name_of_file)))
  96. then
  97.     filedelete(string(name_of_file))
  98.     set value counter = value(counter) + 1
  99.     goto jump1
  100. endif
  101.  
  102. print "Additional backup of partition"    
  103. print ""
  104. img = string(header) + "backup.pbf"    // Select filename for image
  105. unselect all
  106. select disk value(ndisk)        // Select disk
  107. select partition value(npart)        // Select partition for backup
  108. options
  109.     cmp = 1                // Compression = 1
  110.     label = "Additional backup"        // Label
  111.     autonames                // Create names automatically
  112. store                    // Backup
  113.  
  114. call something_do            // Check last operation
  115. apply all                    // Apply all scheduled operations
  116. call something_do            // Check last operation
  117. goto out                // Exit
  118.  
  119. something_do:                // Procedure for checking last operation
  120.     if (errorcode(1) != 0)        // If we have error
  121.     then
  122.     print "Some error occured: "    // Print message
  123.     strerror(errorcode(1))        // Print explanation of error
  124.     print ""
  125.     print "Exiting"
  126.     print ""
  127.     exit(errorcode(1))        // Exit from script
  128.     endif
  129. endcall                    // End of procedure
  130.  
  131. out:
  132.     print "************************************** ALL IS OK **************************"
  133.     print ""
  134.     exit(0)
  135.